package cn.yj.wx.pay.enrity.refund;

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 退款接口请求参数
 * @author 永健
 * @since 2021-10-21 10:52
 */
@Data
public class RefundRequest {

    private String transaction_id;

    private String out_trade_no;

    private String out_refund_no;

    private String reason;

    private String notify_url;

    private String funds_account;

    private Amount amount;


    private goodsDetail goods_detail;

    @Data
    public static class Amount {

        /**
         * 退款金额 *
         */
        private int refund;

        /**
         * 原订单金额 *
         */
        private int total;

        private String currency="CNY";

        /**
         * 退款出资账户及金额
         * map:{
         * account:'', 出资账户类型
         * amount:1, 出资金额
         * }
         */
        private List<Map> from;
    }

    @Data
    public static class goodsDetail {

        /**
         * 商户侧商品编码
         * 必填
         */
        private String merchant_goods_id;

        /**
         * 微信支付定义的统一商品编号（没有可不传）
         */
        private String wechatpay_goods_id;

        /**
         * 商品的实际名称
         */
        private String goods_name;

        /**
         * 商品单价
         * 必填
         */
        private String unit_price;

        /**
         * 商品退款金额，单位为分
         * 必填
         */
        private String refund_amount;

        /**
         * 商品退货数量
         * 必填
         */
        private String refund_quantity;
    }
}
